const BASE_URL = "http://nocat.life:3017"

export const request = (options) => {
	return new Promise((resolve, reject) => {
		// 获取本地存储的 token
		const token = uni.getStorageSync('token')
		
		// 构建请求头
		const header = {
			'Content-Type': 'application/json',
			...(options.header || {})
		}
		
	// 如果有 token，添加到请求头
	if (token) {
		// 检查 token 是否已经包含 Bearer 前缀
		if (token.startsWith('Bearer ')) {
			header['Authorization'] = token
			console.log('✅ Token 已包含 Bearer 前缀')
		} else {
			header['Authorization'] = `Bearer ${token}`
			console.log('✅ 添加 Bearer 前缀到 Token')
		}
	}
	
	console.log('📤 发送请求:', options.method, BASE_URL + options.url)
	console.log('请求头 Authorization:', header['Authorization'] ? header['Authorization'].substring(0, 30) + '...' : '无')
	
	uni.request({
			url: BASE_URL + options.url,
			method: options.method || "GET",
			data: options.data,
			header: header,
			success: (res) => {
				console.log(`📡 API响应 [${options.method} ${options.url}]:`, res.statusCode, res.data)
				
				// 如果返回 401，说明 token 过期或无效
				if (res.statusCode === 401) {
					console.warn('⚠️ 401 未授权，token可能已过期')
					uni.removeStorageSync('token')
					uni.removeStorageSync('userInfo')
					uni.showToast({
						title: '登录已过期，请重新登录',
						icon: 'none'
					})
					// 跳转到登录页
					setTimeout(() => {
						uni.navigateTo({
							url: '/pages/login/login'
						})
					}, 1500)
					reject(res.data)
				} else if (res.statusCode === 200) {
					// 请求成功，返回数据
					resolve(res.data)
				} else {
					// 其他错误状态码
					console.error(`❌ 请求失败 [${res.statusCode}]:`, res.data)
					resolve(res.data) // 还是resolve，让业务层处理
				}
			},
			fail: (err) => {
				uni.showToast({
					title: '网络请求失败',
					icon: 'none'
				})
				reject(err)
			}
		})
	})
}